Wind speed data were taken from the Famine Early Warning Systems Network (FEWS NET) Land Data Assimilation System (https://developers.google.com/earth-engine/datasets/catalog/NASA_FLDAS_NOAH01_C_GL_M_V001#bands ). These are monthly data with a resolution of ~ 11 km.
# Load required packages
# Load packages
library(rgee)
library(targets)
library(sf)
library(terra)
library(raster)
library(tidyverse)
library(lubridate)
library(leaflet)
library(ggplot2)
library(ggpubr)
library(leafem)
library(plotly)
#Load required data
# get domain
domain <- st_read("data/output/domain.gpkg",
quiet = TRUE)
domain_sf <- domain
# get flight boxes
boxes <- st_read("data/flight_planning/20221026_flightboxes.gpkg",
quiet = TRUE)
boxes$id <- 1:20 # need a unique ID to make things easier
boxes$ordered_id[c(11,10,15,14,20,18,2,13,17,16,4,1,6,8,3,19,5,9,7,12)] <- 1:20
boxes_sf <- boxes
# Download table from drive (to see the code underlying this or to update the data, see the file "R/mock_flights_earth_engine.R")
googledrive::drive_download(file = "EMMA/wind_stats.csv",
path = "data/wind_stats.csv",
overwrite = TRUE)
wind_table <- read.csv("data/wind_stats.csv")
# Parse date
wind_table %>%
mutate(year = year(date),
month = month(date),
day = day(date),
day_of_year = yday(date)) -> wind_table
To visualize spatial patterns in wind speed, we calculated the average wind speed (m/s) for each raster cell (Figure 2). Averages were taken across days (October-December) and years (2000-present).
#Pull in other bioscape layers
team_requests <- st_read("data/manual_downloads/BIOSCAPE_proposed/20221014_team_polygons.gpkg",quiet = TRUE) %>%
st_transform(crs = st_crs(4326))
domain_sf %>%
st_transform(crs = st_crs(4326)) -> domain_wgs84
mean_wind_speed <- raster("data/output/mean_wind.tif")
#Make a palette
pal <- colorNumeric(palette = colorRamp(c("white", "magenta"), interpolate = "spline"),
domain = unique(values(mean_wind_speed)),na.color = NA)
boxes_sf %>%
st_transform(crs = st_crs(4326))%>%
leaflet() %>%
addProviderTiles("Esri.NatGeoWorldMap", group = "NatGeo") %>%
addProviderTiles(providers$Esri.WorldImagery, group = "World Imagery") %>%
addMapPane("flights", zIndex = 420) %>%
addMapPane("requests", zIndex = 410) %>%
addRasterImage(x = mean_wind_speed,
group = "Clouds",
colors = pal,
opacity = 1) %>%
addPolygons(stroke = TRUE,
group = "Flights",
color = "black",
opacity = 1,
weight = 1,
label = ~as.character(ordered_id),
labelOptions = labelOptions(noHide = T,
textOnly = T,
textsize = 3),
options = pathOptions(pane = "flights"),
fill = FALSE)%>%
addPolygons(data = team_requests %>%
st_zm(drop = T, what = "ZM"),
stroke = TRUE,
color = "black",
group = "Requests",
options = pathOptions(pane = "requests"),
fill = FALSE,
weight = 1)%>%
addMouseCoordinates() %>%
#addImageQuery(sampling_options_wgs84, type="mousemove", layerId = "park_name") %>%
leaflet::addLegend(position = "bottomright",
pal = pal,
values = min(na.omit(values(mean_wind_speed))):max(na.omit(values(mean_wind_speed))),
opacity = 1,
title = "Mean\nWind\nSpeed\n(m/s)") %>%
addLayersControl(
baseGroups = c("World Imagery","NatGeo"),
overlayGroups = c("Flights","Requests","Clouds"),
options = layersControlOptions(collapsed = FALSE),
position = "topright") %>%
hideGroup("Requests")